package org.shop.dao;

import java.util.List;
import java.util.Map;

import org.shop.dao.base.BaseDaoMapper;
import org.shop.entity.Goods;

public interface GoodsMapper extends BaseDaoMapper<Goods, Long>{
    /**
     * 获取我发布的商品信息列表（店铺）
     *
     * @param paramMap
     * @return
     */
    public List<Goods> getShopGoodsList(Map<String, Object> paramMap);

    /**
     * 获取我发布的商品条数（店铺）
     *
     * @param dataMap
     * @return
     */
    public Integer getShopGoodsCount(Map<String, Object> paramMap);
    
    /**
     * 获取我发布的商品信息列表（个人）
     *
     * @param paramMap
     * @return
     */
    public List<Goods> getUserGoodsList(Map<String, Object> paramMap);
    
    /**
     * 获取所有商品列表
     *
     * @param paramMap
     * @return
     */
    public List<Map<String, Object>> getGoodsList(Map<String, Object> paramMap);
    
    /**
     * 获取二手商品列表
     *
     * @param paramMap
     * @return
     */
    public List<Map<String, Object>> getUsedGoodsList(Map<String, Object> paramMap);
    
    /**
     * 通过二手Id获取二手商品信息
     *
     * @param paramMap
     * @return
     */
    public Map<String, Object> getUsedGoodsInfo(Map<String, Object> paramMap);
    /**
     * 获取二手商品信息列表
     *
     * @param paramMap
     * @return
     */
    public List<Map<String, Object>> getCheckGoodsList(Map<String, Object> paramMap);

    /**
     * 获取二手商品条数
     *
     * @param dataMap
     * @return
     */
    public Integer getCheckGoodsCount(Map<String, Object> paramMap);
    
    /**
     * 获取所有二手商品列表
     * @param paramMap
     * @return
     */
    public List<Map<String, Object>> getAllUsedGoodsList(Map<String, Object> paramMap);
    
    
    /**
     * 根据商品类型获取所有商品信息列表
     *
     * @param paramMap
     * @return
     */
    public List<Map<String, Object>> goodsByClassifyList(Map<String, Object> paramMap);
    
    /**
     * 商家被关闭发布的商品也跟着关闭
     * @param merchantId
     * @return
     */
    public int closeThisGoods(Long merchantId);
    /**
     * 商家被打开发布的商品也跟着打开
     * @param merchantId
     * @return
     */
    public int openThisGoods(Long merchantId);
    
	/**
     * 获取店铺下所有商品分类
     * @param params
     * @return
     */
    public List<Map<String,Object>> getMerchantGoodsClassifyList(Map<String,Object> params);
}